// pages/auth/auth.js
Page({

    login:function(e){

        let user = wx.getStorageSync("user");
        if(user){
            console.log("已登录,如需重新登录，请清空缓存");
            //已经登录，user信息是登录成功之后设置在本地存储中的数据,
            //如果已经登录，想要清空数据，请使用小程序开发者工具清除所有缓存
            return ;
        }

        wx.login({
            //登录成功
            success:(res)=>{
                wx.getUserInfo({ //获取用户完整登录信息，并包含一个jwt token
                    success:(ret)=>{
                        //console.log(ret); 明文，不包含openid
                        this.getToken(
                            res.code, // code， 通过code换取session_key 用于解析  encryptedData中的用户信息
                            ret.encryptedData, //加密的 用户信息
                            ret.iv,            //解密时需要的偏移量 
                            ret.signature,     //服务端用于 验证上述解密数据的签名 
                            ret.rawData
                        );
                    }
                })

            }
        })

    },

    //获取用户Token
    getToken(code,encryptedData,iv,signature,rawData){
        console.log("code:   "+code);
        console.log("encryptedData:   "+encryptedData);
        console.log("signature:   "+signature);
        console.log("rawData:   "+rawData);
        wx.showLoading({
            title:'登录中' ,
            mask: true,

        });

        // debugger;
        wx.request({
            method:'GET',
            url:'http://192.168.77.11/api/v1/user/wxlogin',
            // url:'http://192.168.77.11/api/v1/user/code2Session',
            dataType:'json',
            data:{
                //appid 和 secret 教学时需要学生传，自己用可以在服务端配置写死
                // "appid":"wx60c6665e68b8d29d", //此处应该改成自己的 这个appid不正确
                // "secret":"f26413c3f18d5ec35106cf628c5a3b92", //自出应该改成自己的，这个secret不正确
                "code":code,
                // "js_code":code,
                "encryptedData":encryptedData,
                "iv":iv,
                "signature":signature,
                "rawData":rawData
            },
            success:(resp)=>{

                if(resp.data.meta.code == 200){
                    let user = resp.data.message;
                    //user为用户信息，包括token，可以把token存储到小程序客户端
                    console.log("MM:获取携带Token的用户:");
                    console.log(user);
                    wx.setStorageSync("user", user);
                }else{
                    console.log(resp.data.meta);
                    wx.showToast({
                        title: '失败-看控制台',
                        icon: 'error',
                        duration: 2000
                    })
                }
            },
            complete(){
                wx.hideLoading();//隐藏加载
            }
        });
    },

    //登出
    logout:function(){
        wx.removeStorage({
            key: 'user',
            success: (res)=> {
                wx.showModal({
                    title: '提示',
                    content: '已退出',
                })
            }
        })
    }


})